查看原文
其他

以高性能支撑冷冻电镜,看XGFS背后的XCache缓存技术

蒙正 XSKY星辰天合
2024-11-01


新冠疫情再一次让大家审视起了“病毒”。而对于一种新的病毒,我们只有去发现它、了解它、研究它,最终才能制造出能治愈患者的药物,以及增强人体免疫的疫苗。那么病毒如何观察呢?针对病毒做结构研究,就少不了在微观世界对病毒本身进行观察和成像。这就不得不提到一项极大推动生物学发展的技术,即冷冻电镜技术,这项技术是将生物大分子快速冷冻后,在低温环境下利用透射电子显微镜对样品进行成像,以获得数万到数百万张生物大分子照片,然后通过一定的算法来整合这些图像,计算出生物大分子的三维结构。


如上海科技大学免疫化学研究所饶子和院士所率领的联合团队,通过冷冻电镜累计获得了7万余张合计超过100TB的高质量照片,完整病毒颗粒接近6万5千颗,最终解析了非洲猪瘟病毒全颗粒的三维结构。


在整个流程中,数据采集、图像处理、三维重构是非常核心的三个步骤,对计算和存储的需求非常高。


而XSKY星辰天合下一代分布式文件系统XGFS,因搭载XCache缓存技术而具有的高性能优势,使得冷冻电镜技术得以生物医药医疗机构可以高效攻克一道一道难关。


本期内容,XSKY星辰天合技术专家带您一起解析,XCache在冷冻电镜场景下是如何应用的。


冷冻电镜


科学家Jacques Dubochet(瑞士)、Joachim Frank(德国)、Richard Henderson(苏格兰)在2017年10月因为开发并发展了冷冻电镜技术,获得诺贝尔化学奖。至此,冷冻电镜正式步入公众视野。


Relion & Motioncor

Relion是由MRC的Scheres在2012年发布的针对单颗粒冷冻电镜图片进行处理的框架,目前已经成为冷冻电镜研究领域的主流软件之一。Relion在进行单颗粒图片处理时Motioncor(运动矫正)阶段对存储的读性能有很高要求。


在收集冷冻电镜数据期间,样品会因各种原因发生运动。载物台漂移或者各项异性变形,矫正这种运动问题是数据处理pipeline的第一步。


IO 模型

通过对Motion correction的IO模型进行分析发现,Relion在进行Motion correction时,会对将要处理的数据进行两个维度的拆分:


  • 对Raw data目录中的文件根据进程数进行拆分,如配置24进程(Number of MPI procs),则Relion将会按照文件数量把目录中的文件进行切分,并且每个进程负责其中的一部分;
  • 在单个文件内数据按照线程数进行拆分,如配置4线程(Number of threads),Relion将会按照文件大小进行切分,每个线程负责读取文件的一部分;



XCache 缓存


我们知道从CPU缓存、内存、硬盘性能和价格的对照如下,随着存储性能的逐级提高,同样容量的存储设备价格差距可达数百乃至上千倍,如此巨大的差距下,如何在一定的成本限制下尽可能提高系统数据访问性能?



常规的IO优化策略主要有一下几种:

  • 避免IO,避免IO走到低速的存储介质,常见的处理方式就是缓存;
  • 顺序IO,针对磁盘顺序访问要比随机访问快,如果多IO负载下无法完全顺序执行,那就增大IO的大小,减少寻道定位,提高吞吐量;
  • 异步IO,让CPU和磁盘同时工作,把需要的数据提前载入内存;
  • 并行IO,把多个磁盘的容量和带宽聚合起来,提升整体的IO性能;

预读是一种用于提升顺序读性能的常用技术,用来提高数据的访问性能,并且预读在以上四种I/O优化的策略中都会发挥作用。XCache为XGFS提供了文件数据、文件元数据、目录的缓存能力,支持配置多种Cache策略,同时可以通过预读机制来加速读文件性能。


文件预读

在XCache中每个文件都是单独管理自己的缓存,会根据过去的IO模型通过预读算法来预测将来会被访问的数据块,从而到达提高IO性能的目标。这种预读方式在顺序预读的情况下可以达到最高的命中率。


从Motioncor的IO模型来看,是属于典型的顺序预读模式,在这种场景下XCache可以发挥最大的优化效果。

目录预读

通过缓存策略配置,可以让XCache实现基于目录的文件级别预读。在业务进程开始读一个文件的时候,就发一个预读请求到XCache中一个独立的线程,提前把当前文件的下一个文件数据预读上来。所以进程读文件的时候同时会提前预读下一轮需要的文件。



元数据和目录缓存

除了数据缓存和预读之外,XCache还提供了元数据和目录的缓存能力。元数据cache默认使用1GB的内存,可存储千万量级的元数据。当元数据拉取到XCache后,后续针对该文件的元数据访问会直接从XCache获取,直到租约过期,这是XCache会向XMDS元数据集群做同步,如果元数据有修改,则更新缓存。



性能表现


测试模型为原始数据目录下有800个文件,每个文件约280M左右,共220G的测试数据。Relion会读取测试数据,并对读到的数据进行计算,把测试目录下的数据都处理完一遍就执行结束。针对以上业务的IO模型,24个进程,每个进程4线程同时并发顺序读,XCache的预读算法可以生效,测试结果如下。



Motioncor阶段,XGFS性能最好,主要考验存储大带宽读性能。

总结


冷冻电镜产生海量大文件,并且要求长期保存,不仅对存储成本提出更高的要求,同时需要存储具备高性能和高可扩展性。由于样本制备耗时极长,每次作业获取的数据都非常宝贵,对数据的安全性要求极高,对大规模存储系统的可运维也提出要求,同时Motion correction大文件带宽需求与particle extraction阶段小块IOPS需求。


下一代分布式文件系统XGFS不仅支持节点扩容、整池扩容等模式,并且性能随集群扩容而线性增加。专为性能优化而设计的XCache将会在冷冻电镜和其他高性能计算场景为客户带来意想不到的惊喜。

END




如想了解更多产品信息扫码联系XSKY星辰天合售前专家


XSKY SDS V5技术解读系列


XSKY星辰天合发布软件定义存储V5系列 统一平台实现数据常青

为什么业界很少支持块EC?性能搞不定啊!

为什么国内全闪系统很少支持QLC,因为寿命搞不定啊

同时支持iSCSI和NFS,XSKY SDS V5的K8s CSI卷扩展功能是如何炼成的

用专利方法,给XGFS分布式文件的数据拍个照

非结构化数据在线迁移,如何实现业务无中断?

数据保存百年分几步?


继续滑动看下一个
XSKY星辰天合
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存